note
	description: "Esta clase representa un modulo que contiene un misil y brinda las operaciones necesarias para disparar un misil"
	author: "Matias Varela y Mariano Rodecker"
	date: "$Date$"
	revision: "$Revision$"

class
	MC72

	create
		make
	--Atributo de instancia
	feature {}
		misil:MISIL
	--Constructor para un modulo MC72
	feature make
		do
		end
	--Consultas
	feature Hay_Misiles:BOOLEAN --Retorna si hay misiles en stock.
		local
			--Atributos locales para llevar a cabo una operacion aleatoria.
			r:RANDOM
			t:DATE_TIME
		do
			create r.make
			create t.make_now
			r.set_seed (t.seconds)
			if((r.next_random (t.seconds)\\2)=0) then
				Result:=false
			else
				Result:=true
			end
		end

	--Comandos
	feature Preparar_Misil--Prepara el misil para que pueda ser disparado.
		local
			flag:INTEGER--Variable local para el manejo de excepciones.
		do
			Setup_Misil
			flag:=1
			Cargar_Misil

		rescue
			if(flag=1)then
				retry
			end
		end
	feature Apuntar_Misil(Objetivo:STRING)--Fija el objetivo del misil, el cual es pasado por parametro.
		do
			misil.fijar_blanco (Objetivo)
		end
	feature Lanzar_Misil --Le ordena al misil que despegue.
		do
			misil.despegar
		end

	feature Setup_Misil --Crea un misil.
		require (Hay_Misiles)--Requiere que haya misiles en stock
		do
			create misil.make
			print("El misil se creo correctamente%N")
		end
	feature Cargar_Misil--Activa el misil
		do
			misil.activar
		end

end
